﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIM.Geo.BE;
using System.Data;

namespace SIM.Geo.DA
{
    public class DATipoMaterialMuestra : Base
    {
        /// <summary>
        /// Devuelve la lista de categoria de labores
        /// </summary>
        /// <returns></returns>
        public List<TipoMaterialMuestra> ListarTipoMaterialMuestra()
        {
            return this.Context.TipoMaterialMuestra.ToList();
        }

        /// <summary>
        /// Método para insertar un categoria de labor
        /// </summary>
        /// <param name="TipoMaterialMuestra"></param>
        /// <returns></returns>
        public int InsertarTipoMaterialMuestra(TipoMaterialMuestra tipoMaterialMuestra)
        {
            this.Context.TipoMaterialMuestra.AddObject(tipoMaterialMuestra);
            this.Context.SaveChanges();
            return tipoMaterialMuestra.CodigoTipoMaterialMuestra;
            
        }
        /// <summary>
        /// Método para modificar un categoria de labor
        /// </summary>
        /// <param name="TipoMaterialMuestra"></param>
        public void ModificarTipoMaterialMuestra(TipoMaterialMuestra tipoMaterialMuestra)
        {
            this.Context.TipoMaterialMuestra.Attach(tipoMaterialMuestra);
            this.Context.ObjectStateManager.ChangeObjectState(tipoMaterialMuestra, EntityState.Modified);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método para eliminar categoria de labor
        /// </summary>
        /// <param name="TipoMaterialMuestra"></param>
        public void EliminarTipoMaterialMuestra(TipoMaterialMuestra tipoMaterialMuestra)
        {
            this.Context.TipoMaterialMuestra.DeleteObject(tipoMaterialMuestra);
            this.Context.SaveChanges();
        }
        /// <summary>
        /// Método que busca por nombre categoria de labor
        /// </summary>
        /// <param name="nombre"></param>
        /// <returns></returns>
        public List<TipoMaterialMuestra> BuscarTipoMaterialMuestra(string nombre)
        {
            return this.Context.TipoMaterialMuestra.Where(x => x.Descripcion.StartsWith(nombre)).ToList();
        }
        /// <summary>
        /// Método que devuelve categoria de labor por codigo
        /// </summary>
        /// <param name="codigoTipoMaterialMuestra"></param>
        /// <returns></returns>
        public TipoMaterialMuestra ObtenerTipoMaterialMuestra(int codigoTipoMaterialMuestra)
        {
            return this.Context.TipoMaterialMuestra.Where(x => x.CodigoTipoMaterialMuestra.Equals(codigoTipoMaterialMuestra)).FirstOrDefault();
        }
        /// <summary>
        /// Método que lista tipo materialMuestra por nombre
        /// </summary>
        /// <param name="nombreTipoMaterialMuestra"></param>
        /// <returns></returns>
        public List<TipoMaterialMuestra> ListarTipoMaterialMuestraPorNombre(string nombreTipoMaterialMuestra)
        {
            return this.Context.TipoMaterialMuestra.Where(x => x.Descripcion.ToUpper().Equals(nombreTipoMaterialMuestra.ToUpper())).ToList();
        }
    }
}
